/*
实验1 设计函数，将一个字符串所有出现子串的地方都用一个
str替换
假设有个字符串old 
uvwabc uvabb uvwxha
找出其中子串sub-->"uvw",将其替换为子串str-->"abc"
则输出的结果new
abcabc uvabb abcxha 
**/
#include <stdio.h>
void replace(char *old, char *sub,char *str,char *new); 
int main()
{
	char old[] = {"uvwabc uvabb uvwxha"};
	char sub[4] = {"uvw"};
	char str[4] = {"abc"};
	char new[30];
	replace(old,sub,str,new);
	/*打印数组old中所有元素*/
	char *start;
	printf("Before replacement:"); 
//	for(start=old;*start!='\0';start++)
//	{
//		printf("%c",*start);
//	}
	puts(old);
	printf("After replacement:");
	puts(new);
}
void replace(char *old, char *sub,char *str,char *new)
{
	//声明两个指针 so-->old,subp-->sub
	char *so,*subp;
	while(*old!='\0')
	{
		for(so=old,subp=sub;*so!='\0'&&subp!='\0'&&
		*subp==*so;so++,subp++);//在old中有无匹配sub的位置 
		if(*subp!='\0')//如果没找到 
		{
			*new=*old;
			new++;
			old++;
		}
		else{ //如果找到了 
			for(subp=str;*subp!='\0';subp++)
			{
				*new=*subp;
				new++;
			}
			old=so;
		}
		*new='\0';
	}
}





















